package com.carbon.notice.controller;


import com.carbon.model.Result;
import org.apache.commons.io.IOUtils;
import org.jodconverter.DocumentConverter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

/**
 * <p>
 * 资讯公告附件表 前端控制器
 * </p>
 *
 * @author jobob
 * @since 2021-06-30
 */
@RestController
@RequestMapping("/notice/noticeAppendix")
public class NoticeAppendixController {


     /**
     * @Description 转换器注入
     */
    @Autowired
    private DocumentConverter converter;

    @Autowired
    private HttpServletResponse response;

     /**
     * @Description office文档转pdf在线预览
     */
    @GetMapping("/toPdfFile/{filePath}")
    public Result toPdfFile(@PathVariable String filePath){
        //TODO 下载需要转换的文件
        File file = new File("E:\\碳灵云脑项目\\碳讯管理，问答中心接口设计文档.docx");
        try {
            //转换之后文件生成的地址
            String outPath = new File("").getAbsolutePath()+"/outputPdfDir";
            File newFile = new File(outPath);
            if (!newFile.exists()) {
                newFile.mkdirs();
            }
            //文件转化
            converter.convert(file).to(new File(outPath+"/convert.pdf")).execute();
            //使用response,将pdf文件以流的方式发送的前段
            ServletOutputStream outputStream = response.getOutputStream();
            // 读取文件
            InputStream in = new FileInputStream(new File(outPath+"/convert.pdf"));
            // copy文件
            int i = IOUtils.copy(in, outputStream);
            System.out.println(i);
            in.close();
            outputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return new Result();
    }

}
